Lecture 4 - TCP IP Model
- ا TCP/IP (Transmission Control Protocol/Internet Protocol) هو suite of protocols (مجموعة بروتوكولات) اتعملت في بداية السبعينات من DARPA (وكالة مشاريع الأبحاث المتطورة التابعة لوزارة الدفاع الأمريكية).
- معروف كمان باسم Internet Protocol Suite.
- ا TCP/IP أقدم من OSI Model — ا OSI جه سنة 1984، لكن TCP/IP كان موجود من قبله.
- ا OSI Model هو reference model, لكن TCP/IP هو الـ protocol suite اللي فعليًا بيشتغل عليه الإنترنت والـ intranets.
- ا TCP/IP مش tied to a vendor — ده open standard protocol وده سبب انتشاره.
- ا TCP/IP v4 هو المستخدم دلوقتي، والـ Next version هو v6.
- ا النموذج الأصلي كان 4 layers مبنيين على الـ hardware.
Application Layer (Layer 4)
-
دي الطبقة اللي المستخدم بيتفاعل معاها مباشرة.
-
فيها البروتوكولات اللي بتخدم التطبيقات زي:
- ا HTTP / HTTPS للمواقع
- ا SMTP / POP3 / IMAP للبريد الإلكتروني
- ا FTP / SFTP لنقل الملفات
- ا DNS لحليل الأسماء
- ا SSH / Telnet للـ remote access
- ا DHCP للتوزيع التلقائي للـ IPs
-
مسؤولة عن إن البيانات تكون formatted properly قبل ما تتنقل.
- الفرق بين OSI و TCP/IP إن OSI بيكسر الطبقة دي لـ 3 طبقات: Application, Presentation, Session.
- ا TCP/IP ضمهم كلهم في طبقة واحدة عشان التطبيق العملي.
Transport Layer (Layer 3)
- مسؤولة عن إنها تضبط عملية نقل البيانات بين جهازين.
- بتوفر connection establishment و reliable data transmission.
- أشهر بروتوكولين فيها:
ا TCP (Transmission Control Protocol)
- ا Connection-oriented (لازم تعمل connection قبل ما تبعت)
- بيضمن التوصيل بالترتيب وبدون فقدان
- بيستخدم في: الويب، الإيميل، نقل الملفات
- بيشتغل بـ Three-way handshake عشان يفتح connection
ا UDP (User Datagram Protocol)
-
ا Connectionless (مش محتاج connection مسبق)
-
سريع لكن مش مضمون (no error correction)
-
بيستخدم في: live streaming، الألعاب، VoIP
-
كل segment له Source Port و Destination Port عشان يحدد التطبيق اللي هيستقبل البيانات.
-
كل segment له Sequence Number عشان يظبط ترتيب الـ segments.
Internet Layer (Layer 2)
-
مسؤولة عن Logical Addressing و Routing.
-
بتضيف الـ IP Header على البيانات عشان تكون Datagrams.
-
الـ IP Header فيه:
- ا Source IP Address
- ا Destination IP Address
-
مسؤولة عن إنها تلاقي أحسن مسار (Route) للبيانات توصل منه للـ destination.
بروتوولات في الطبقة دي:
-
ا IP (Internet Protocol) — البروتوكول الأساسي للعنونة والتوجيه
-
ا ICMP (Internet Control Message Protocol) — للـ error reporting والتشخيص (زي ping)
-
ا ARP (Address Resolution Protocol) — عشان يجيب الـ MAC Address من الـ IP Address (بيشتغل بين الـ Internet و Network Access layers)
Network Access Layer (Layer 1)
- أدنى طبقة في الـ TCP/IP model.
- بتعرف إزاي البيانات تتبعت فعليًا على الوسط الفيزيائي:
- كابلات (Ethernet)
- إشارات راديوية (Wi-Fi)
- ألياف ضوئية (Fiber Optics)
- شبكات خلوية (Cellular)
- بتحول البيانات لـ Bits (إشارات كهربائية / ضوئية / راديوية).
- بروتوكولات زي Ethernet و Wi-Fi (802.11) شغالة هنا.
- ا OSI model بيكسر الطبقة دي لـ 2: Data Link Layer و Physical Layer.
- التقسيم ده بيدي مرونة أكتر للمطورين لأنه بيفصل الـ organizing functions عن الـ accessing functions.
الفرق بين TCP و IP
| ا TCP | ا IP |
|---|---|
| بيدير ازاي الرسالة بتتقطع وتتجمّع | طبقة 3 في TCP/IP model |
| بيعمل connection قبل ما يبعت | مسؤول عن الـ data communications عبر الشبكات |
| بيتحكم في حجم ومعدل الـ packets | بيحدد وجهة البيانات والـ routes |
| بيستخدم IP عشان ينقل الـ packets | الـ packets محتاجة تت reorganized بعد الإرسال |
| بيقدر يوصل devices و apps | بيضمنش التوصيل |
Three-Way Handshake (TCP Connection)
قبل ما client يبدأ يتكلم مع server في TCP، لازم الاتنين يأسسوا connection عن طريق الـ Three-way handshake:
-
ا Client ← Server (SYN):
- ا Client بيبعت SYN packet بـ sequence number عشوائي (خلينا نقول 4321).
- ده بداية طلب الاتصال.
-
ا Server ← Client (SYN-ACK):
- ا Server بيرد بـ SYN = 5501 (الـ sequence number بتاعه).
- و ACK = 4322 (seq بتاع الـ Client + 1).
- بيأكد إنه استلم طلب الاتصال.
-
ا Client ← Server (ACK):
- ا Client بيبعت ACK = 5502 (seq بتاع الـ Server + 1).
- كده الاتصال اشتغل رسميًا.
Data Packages (Package Names)
البيانات بتاخد أسماء مختلفة في كل layer :
| ا Layer | ا Package Name |
|---|---|
| ا Application Layer | Message |
| ا Transport Layer (TCP) | Segment |
| ا Transport Layer (UDP) | Datagram |
| ا Internet Layer | Datagram / Packet |
| ا Network Access Layer | Frame (وبعدين Bit Stream) |
Encapsulation — ازاي البيانات بتتنقل
لما Device A يبعت بيانات لـ Device B:
- ا Application Layer: البيانات بتتضاف عليها الـ application header (زي HTTP header) ← Message
- ا Transport Layer: ا Message بيتغلف في Segment وبيتضاف Source/Destination Port و Sequence Number
- ا Internet Layer: ا Segment بيتغلف في Datagram/Packet وبيتضاف Source/Destination IP
- ا Network Access Layer: ا Datagram بيتغلف في Frame وبيتضاف Source/Destination MAC Address وبعدين بيت حول لـ Bits
عكسياً في الاستقبال — كل layer بتشيل header بتاعها وتعدي البيانات للي فوقها.
- الموضوع زي الـ Russian nesting dolls (الدُمى الروسية) — كل طبقة بتغلف اللي جوة وتضيف حاجة، وفي الاستقبال بيتفكوا واحد واحد.
OSI Model vs TCP/IP Model
| ا OSI Model (7 Layers) | ا TCP/IP Model (4 Layers) |
|---|---|
| Application | Application (دمج Session + Presentation + Application) |
| Presentation | |
| Session | |
| Transport | Transport |
| Network | Internet |
| Data Link | Network Access (دمج Physical + Data Link) |
| Physical |
- ا TCP/IP هو الـ practical model المستخدم فعليًا على الإنترنت.
- ا OSI بيفصل الـ Data Link عن Physical بينما الـ TCP/IP بيدمجهم مع بعض في الـ Network Access.
- ا OSI بيفصل الـ Application layer لـ 3 طبقات عشان يدي alternatives أكتر للتطبيقات بينما الـ TCP/IP بيدمجهم مع بعض .
- الـ Network layer في الـ OSI Model اسمه Internet layer في الـ TCP/IP
- ا OSI بيزيد في الـ flexibility و subdivision عشان الـ developers.
بروتوكولات TCP/IP
1. ا TCP/IP
- ا Standard protocol suite للإنترنت عن طريق packet switching
- ا IP: بيدي unique addresses للأجهزة
- ا TCP: اconnection-oriented, بيكسر البيانات لـ packets ويضمن التوصيل
- الـ default protocol لكل أنظمة التشغيل الحديثة
2. ا HTTP
- ا Application-layer protocol لنقل صفحات الويب
- بيشتغل client-server (request / response)
- ا Stateless — مش بيحتفظ بمعلومات الجلسة
- مش secure — عشان كده بنستخدم HTTPS
3. ا HTTPS
- النسخة الآمنة من HTTP
- بيستخدم SSL/TLS encryption عشان Confidentiality, Integrity, Authentication
- بيحمي بيانات حساسة (credit cards, passwords, OTPs)
4. ا SMTP
- ا Application-layer protocol لإرسال (مش استقبال) الإيميلات
- بينقل الإيميل من sender's mail server لـ receiver's mail server
- بيدعم multimedia عن طريق MIME extensions
5. ا POP3
- بيسترجع الإيميلات من الـ mail server للـ local device
- الإيميلات بتت shift من الـ server بعد التحميل
- ا Ports: 110 (unencrypted), 995 (secure)
- مناسب لجهاز واحد
6. ا IMAP
- بيدير الإيميلات على الـ server نفسه (مش بتحملها)
- بيدعم access من أجهزة متعددة مع synchronization
- أكتر مرونة من POP3 في الاستخدام الحديث
| ا SMTP | ا POP3 | ا IMAP |
|---|---|---|
| لإرسال الإيميلات (outgoing) | لاستقبال وتحميلها على الجهاز | لاستقبال وإدارتها على الـ server |
| بينقل من sender's mail server لـ receiver's | الإيميلات بتتشال من الـ server بعد التحميل | الإيميلات بتفضل على الـ server |
| مش بيستخدم للاستقبال | مناسب لجهاز واحد | بيدعم أجهزة متعددة مع synchronization |
| بيدعم MIME extensions | Ports: 110 / 995 (secure) | أكتر مرونة و folders على الـ server |
7. ا FTP
- لنقل الملفات بين client و server
- بيحتاج authentication وبيدعم TCP
- استخدامات: website management, file sharing
- مش secure إلا مع encryption
8. ا SFTP
- نسخة آمنة من FTP بتشتغل فوق SSH
- بت encrypt البيانات والأوامر
- بديل آمن لـ FTP العادي
9. ا SSH
- ا Secure remote login عبر شبكة غير آمنة
- بيستخدم public-key cryptography
- بيدعم SCP و SFTP — أأمن من Telnet
10. ا TELNET
- ا Remote login protocol
- المشكلة: بينقل البيانات plain text من غير تشفير
- مش secure — اتستبدل بـ SSH
11. ا ICMP
- ا Network-layer protocol للـ error messages و diagnostics
- أنواعه: Echo Request/Reply (ping), Destination Unreachable, Time Exceeded, Redirect
- بيستخدم في troubleshooting وقياس RTT
12. ا IPv4
- ا 32-bit addresses (~4.3 مليار عنوان)
- مكتوب بـ dotted decimal:
192.168.1.1 - بيعاني من address exhaustion
13. ا IPv6
- ا 128-bit addresses — خلصت مشكلة نقص العناوين
- فيه built-in IPsec للأمان
- بيتم اعتماده تدريجيًا
14. ا PPP
- ا Data link layer protocol للاتصال المباشر بين device و device
- بيدعم authentication (PAP, CHAP) — بيستخدمه ISPs
15. ا Gopher
- من أقدم الـ Internet protocols للـ file retrieval
- نظام hierarchical menu-based
- ا Obsolete — مستبدل بـ HTTP و FTP
16. ا UDP
- اConnectionless — مش بيحتاج connection مسبق
- سريع لكن لا يضمن التوصيل (no error correction)
- استخدامات: streaming, gaming, VoIP